這一篇我會以非常主觀的方式並根據我的觀察來描述一些 Data Team 常見的職位,然而每一間公司對每個職位的定義通常有非常大的差異,最準確的方式絕對是根據 Job Description (JD) 內容來看這個職位可能是什麼
而本篇是我認為這個職位在我心中,這個職位 Title 要具備什麼樣的能力,跟在資料團隊中他的分工應該請向於什麼,首先我們先列出比較常見的職位:
如果一個職位包山包海什麼都會一點什麼都很精通,像是 Data 界的 Full-Stack Engineer,我會叫他 Applied Data Scientist,這類 DS 需要建 Pipeline,需要 Train Model, 需要做 SQL 工程師, 需要做 PM, 需要寫報告陪老闆聊天, 最好還會寫前端跟後端做後台系統或是自動化報表系統,相信有很多這一類的 DS,並且很自在
但如果你是這一類的 DS,但你現在其實覺得自己有點四不像,對論文也沒興趣,工程能力也不夠強,那我們就可以來討論一下可以嘗試往什麼方向去建立自己的 Career Path
在這當中我認為 Data Scientist 和 Data Analyst 是相對較少 Engineering 的,另外實際上我發現很多的 Data Analyst 其實都具備 Data Scientist 的能力,真的有差異的可能只有一個博士學位 (?),而我對要走這一條 Career 的人的看法事實上也是乖乖去拿到博士學位吧 ...
在工作內容上我認為兩者都須具備"從 Data 中尋找 Insight",除了擁有基本的分析能力,也會看中視覺話和說故事的能力,最後是以的報告能帶來多少價值,另外也非常吃重 Domain Knowlege,像是 Marketing, Recommender, Platform Risk Control甚至醫療, 半導體製程都有自己的專業知識,除了分析能力專業知識也是很重要的一環
但在 Data Scientist 又更看重 Training 的能力,這裡不是指你套用了一個 XGBosst 然後去試試看不同的參數,這又分兩種
這裡的 Less Engineering 不是指不需要 Coding,而是 Coding 和 Coding 中的很多 Paradigm, 或是一些背後的工程化哲學思考不是這裡專研的重點
Machine Learning Engineer 和 AI Engineer 我認為都是非常 Developer 的職位,需要大量的 Coding,而其最主要的目標就是把 Researcher 的模型實現,並且優化,簡單的可能是重現一個論文或是包裝一個模型 Endpoint,甚至是去提供一個 Baseline Model 都是 MLE, AIE 的範疇,但我認為更需要專注的是如何去平行化或分案是的處理 Inference/ Training 的 Service,加速和優化模型都是這個角色需要注重的領域
而 MLE 和 AI 我認為 AI 會更注重於 Unstructured Data 像是 Image 和 Natural Language,而 MLE 則是其他像是 Recommender System, Time Series 或 Structure Data 的題目
當然實作 Pipeline 的 Data Engineer 很多時候也是仰賴大量的 Coding,包含 OLTP 到 OLAP 的資料庫,OLTP 資料庫分層,Sync Job (e.g. Flink Pipeline) 和 Async Job (e.g. Airflow Pipeline)的實作等等
而我們這 28 天提到的 MLOps 我會更推向他是一種 System 的角色,我會定義 System 是去組合許多現有的工具,而不是去建造一個新的工具,當然 System 的角色會需要 Coding 能力來幫工具添加 Pluging 或是 Adopt 成更是更團隊所需要的 Feature,但不會從頭到尾去建造,因為建造一個工具通常需要一個完整的前後端和專案經理團隊,這已經超乎一個 MLOps 所能及
當然這一切都是建構在 Infrastructure Team 以及 SRE Team,Infrastructure Team 我認為是基礎建設的組織,假設我今天決定要使用 Flink 來當我實時 Pipeline 的建設工具,他們就會負責架起這樣的系統,並起管理制個系統所需要的資源並且提供擴容或是縮榮的機制,而SRE Team 則是去監控變管理這個系統,實作或是引用一些工具讓這個系統可以常保在線上
換句話說,我認為 CICD 更專注於上線前而 DevOps 更專注於上線後,而 SRE 專注於執行的底層系統穩定, Infrastructure 在實踐執行系統所需要的功能,MLOPS 則涵蓋和這些團隊的溝通並銜接與 Machine Learning 有關的部分
以上就是我對一個機器學習團隊或見到的幾個角色想像的分工